package net.zisen.cloud.user.service;

import lombok.extern.log4j.Log4j2;
import net.zisen.cloud.base.msg.ResultMsg;
import net.zisen.cloud.ping.user.model.User;
import org.beetl.sql.core.SQLManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
@Log4j2
public class UserServiceImpl implements UserService {


    @Autowired
    private SQLManager sqlManager;

    /**
     * 根据账号获取用户
     *
     * @param account 用户账号
     * @return net.zisen.cloud.ping.user.model.User
     */
    @Override
    public User getByAccount(String account) {
        return null;
    }

    /**
     * 根据手机号获取
     *
     * @param mobile 用户手机号
     * @return net.zisen.cloud.ping.user.model.User
     */
    @Override
    public User getByMobile(String mobile) {
        return null;
    }

    /**
     * 注册用户
     *
     * @param user
     * @return net.zisen.cloud.base.msg.BaseMsg
     */
    @Override
    public ResultMsg<User> registerUser(User user) {
        log.info("插入用户：{}", user);
        if (sqlManager.insert(user) > 0) {
            return new ResultMsg<>(true, 0, "成功", user);
        }
        return new ResultMsg<>(false);
    }

    /**
     * 判断用户是否锁定
     *
     * @param account
     * @return
     */
    @Override
    public ResultMsg isUserLocked(String account) {
        return null;
    }

    /**
     * 判断用户账号是否存在
     *
     * @param account       用户账号
     * @param currentUserId 用户id(非必填)
     * @return true:存在;false:不存在
     */
    @Override
    public boolean isAccountExists(String account, Long currentUserId) {
        return false;
    }

    /***
     * 判断用户是否存在
     * @param mobile 用户手机号
     * @param currentUserId 用户id(非必填)
     * @return true:存在;false:不存在
     */
    @Override
    public boolean isMobileExists(String mobile, Long currentUserId) {
        return false;
    }

    /**
     * 更新用户信息
     *
     * @param user          用户信息
     * @param currentUserId 当前用户id
     * @return true:成功;false:失败
     */
    @Override
    public ResultMsg<User> updateBaseUser(User user, Long currentUserId) {
        return null;
    }

    /**
     * 更新当前用户手机号码
     *
     * @param mobile        新手机号
     * @param currentUserId 当前用户id
     * @return
     */
    @Override
    public ResultMsg<User> updateUserMobile(String mobile, Long currentUserId) {
        return null;
    }

    /**
     * 更新当前用户手机号码
     *
     * @param oldPlainPwd
     * @param newPlainPwd
     * @param currentUserId
     * @return
     */
    @Override
    public ResultMsg updateUserPassword(String oldPlainPwd, String newPlainPwd, Long currentUserId) {
        return null;
    }
}
